import { defineMock } from './base';

export default defineMock([
    {
        url: 'dict/:code/options',
        method: ['GET'],
        body: ({ params }) => {
            const typeCode = params.code;

            let list = null;

            if (typeCode == 'gender') {
                list = [
                    {
                        value: '1',
                        label: '男'
                    },
                    {
                        value: '2',
                        label: '女'
                    },
                    {
                        value: '0',
                        label: '未知'
                    }
                ];
            }

            return {
                code: '00000',
                data: list,
                msg: '一切ok'
            };
        }
    },

    {
        url: 'dict/types/page',
        method: ['GET'],
        body: {
            code: '00000',
            data: {
                list: [
                    {
                        id: 1,
                        name: '性别',
                        code: 'gender',
                        status: 1
                    },
                    {
                        id: 2,
                        name: '状态',
                        code: 'status',
                        status: 1
                    }
                ],
                total: 2
            },
            msg: '一切ok'
        }
    },

    {
        url: 'dict/page',
        method: ['GET'],
        body: {
            code: '00000',
            data: {
                list: [
                    {
                        id: 1,
                        name: '男',
                        value: '1',
                        status: 1
                    },
                    {
                        id: 2,
                        name: '女',
                        value: '2',
                        status: 1
                    },
                    {
                        id: 3,
                        name: '未知',
                        value: '0',
                        status: 1
                    }
                ],
                total: 3
            },
            msg: '一切ok'
        }
    },

    // 新增字典类型
    {
        url: 'dict/types',
        method: ['POST'],
        body({ body }) {
            return {
                code: '00000',
                data: null,
                msg: '新增字典类型' + body.name + '成功'
            };
        }
    },

    // 获取字典类型表单数据
    {
        url: 'dict/types/:id/form',
        method: ['GET'],
        body: ({ params }) => {
            return {
                code: '00000',
                data: dictTypeMap[params.id],
                msg: '一切ok'
            };
        }
    },

    // 修改字典类型
    {
        url: 'dict/types/:id',
        method: ['PUT'],
        body({ body }) {
            return {
                code: '00000',
                data: null,
                msg: '修改字典类型' + body.name + '成功'
            };
        }
    },

    // 删除字典类型
    {
        url: 'dict/types/:id',
        method: ['DELETE'],
        body({ params }) {
            return {
                code: '00000',
                data: null,
                msg: '删除字典类型' + params.id + '成功'
            };
        }
    },

    // 新增字典
    {
        url: 'dict',
        method: ['POST'],
        body({ body }) {
            return {
                code: '00000',
                data: null,
                msg: '新增字典' + body.name + '成功'
            };
        }
    },

    // 获取字典表单数据
    {
        url: 'dict/:id/form',
        method: ['GET'],
        body: ({ params }) => {
            return {
                code: '00000',
                data: dictMap[params.id],
                msg: '一切ok'
            };
        }
    },

    // 修改字典
    {
        url: 'dict/:id',
        method: ['PUT'],
        body({ body }) {
            return {
                code: '00000',
                data: null,
                msg: '修改字典类型' + body.name + '成功'
            };
        }
    },

    // 删除字典
    {
        url: 'dict/:id',
        method: ['DELETE'],
        body({ params }) {
            return {
                code: '00000',
                data: null,
                msg: '删除字典' + params.id + '成功'
            };
        }
    }
]);

// 字典类型映射表数据
const dictTypeMap: Record<string, any> = {
    1: {
        id: 1,
        name: '性别',
        code: 'gender',
        status: 1,
        remark: null
    },
    2: {
        id: 2,
        name: '状态',
        code: 'status',
        status: 1,
        remark: null
    }
};

// 字典映射表数据
const dictMap: Record<string, any> = {
    1: {
        id: 1,
        typeCode: 'gender',
        name: '男',
        value: '1',
        status: 1,
        sort: 1,
        remark: null
    },
    2: {
        id: 2,
        typeCode: 'gender',
        name: '女',
        value: '2',
        status: 1,
        sort: 2,
        remark: null
    },
    3: {
        id: 3,
        typeCode: 'gender',
        name: '未知',
        value: '0',
        status: 1,
        sort: 1,
        remark: null
    }
};
